﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Transactions;
using DomainDriver.DomainModeling.DomainModels;

namespace DomainDriver.DomainModeling.TransactionScripts
{
    public interface ITransactionScript
    {
        TransactionScopeOption TransactionScopeOption { get; }
        IDomainModel DomainModel { get; set; }
        bool IsReady();
        bool HasRun { get; }
        bool WasSuccessful { get; }
        void Run();
    }

    public interface ITransactionScript<RETURN_TYPE> : ITransactionScript
    {
        RETURN_TYPE Result { get; }
    }
}